/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.upc.clase.demo.service.impl;

import edu.upc.clase.demo.dao.ClienteDao;
import edu.upc.clase.demo.dao.impl.ClienteDaoImpl;
import edu.upc.clase.demo.entity.Cliente;
import edu.upc.clase.demo.service.ClienteService;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 *
 * @author joelpacheco
 */
@Service
public class ClienteServiceImpl implements ClienteService {

    private static Logger log = LoggerFactory.getLogger(ClienteDaoImpl.class);
    @Autowired
    private ClienteDao clienteDao;

    @Override
    public Integer insertar(Cliente cliente) {
        if (cliente.getDNI().length() == 8) {
            log.info("Creando Cliente");
            return clienteDao.insertar(cliente);
        }
        return null;
    }

    @Override
    public void actualizar(Cliente cliente) {
        log.info("Actualizando cliente");
        clienteDao.actualizar(cliente);
    }

    @Override
    public void eliminar(Cliente cliente) {
        log.info("Eliminando cliente");
        clienteDao.eliminar(cliente);
    }

    @Override
    public List<Cliente> buscarTodos() {
        log.info("Buscando todos los clientes");
        return clienteDao.buscarTodos();
    }

    @Override
    public Cliente buscar(Integer id) {
        log.info("Buscar cliente por id");
        return clienteDao.buscar(id);
    }

    @Override
    public List<Cliente> buscarPorNombre(String nombre) {
        return clienteDao.buscarPorNombre(nombre);
    }

    @Override
    public Boolean autenticar(String dni) {
        if (dni.length() == 8) {
            Cliente cliente = clienteDao.buscarPorDni(dni);
            if (cliente != null) {
                return cliente.getDNI().equals(dni);
            }
        }
        return Boolean.FALSE;
    }
}
